<?php

/*
	This file is part of Mandragon.

    Mandragon is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Mandragon is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Mandragon.  If not, see <http://www.gnu.org/licenses/>.
*/

class ResetPasswordPage {
				
	private $alerter;
	
	public function __construct() {
		$this->alerter = new Alerter();
	}

	/**
	 * adds extra access checks, dependent on page state
	 */
	function page_inc_check_access($page) {
		check_access("VIEW");
	}

	/**
	 * execute page logic
	 */
	function page_inc_execute($page) {
		global $CONFIG;
		$CONTENT = array();
		
		if ($_SESSION['user_id'])
			endpage("je bent al ingelogd");
		
		$CONTENT['title'] = "Wachtwoord terugvinden";

		$inputs = array();
		
		$pwBody = "Op de Mandragon-server wordt je wachtwoord veilig bijgehouden. Zo veilig dat we je het originele 
				   wachtwoord niet kunnen doormailen. Als je je wachtwoord vergeten bent, meld het via het formulier 
				   hieronder en dan krijg je een nieuw wachtwoord toegestuurd.";
		$creator = new FormCreator();
		if (!$_POST['nick']) {
		
			$CONTENT['body'] = $pwBody; 
			$inputs[] = $creator->form_input_field("Gebruikersnaam", "nick");
			$CONTENT['form'] = $creator->create("resetform", $inputs);
			
		} else {
			
			$sqlresult = db_do_query($page, db_query_select(array(array('*')), array("MEMBER"), "nick LIKE '{$_POST['nick']}'"));
			if (db_num_rows($sqlresult) != 1) {
				$this->alerter->add_alert("Onbekende gebruikersnaam");
				$CONTENT['body'] = $pwBody; 
				$inputs[] = $creator->form_input_field("Gebruikersnaam", "nick");
				$CONTENT['form'] = $creator->create("resetform", $inputs);
			} else {
				$user = db_fetch_array($sqlresult);
				$newpwd = substr(md5(date('U').$user['pwd']), 0, 8);
				$hash = md5("{$CONFIG['pwd_prefix']}{$newpwd}{$CONFIG['pwd_suffix']}");
				//TODO: extract message
				$message = "Iemand heeft zonet je wachtwoord voor Mandragon.be gereset. Normaalgezien heb je dat zelf gedaan. Is dat niet zo, antwoord dan op deze mail en dan zoeken we uit of er valsgespeeld is. Onderstaand wachtwoord is sowieso strikt persoonlijk en kan het niet naar anderen zijn doorgespeeld. 
	Het wachtwoord is niet al gemakkelijk te onthouden, je kan het best zo snel mogelijk veranderen door in te loggen en naar je profielsinstellingen te gaan.

	Login: '{$user['nick']}'
	Wachtwoord: '{$newpwd}'
	(beide zonder aanhalingstekens)


	Tot op de site !
	Mandragon Web Team
	http://www.mandragon.be";
				db_do_query($page, db_query_update(array('member_since', 'last_visit', 'pwd'), array('member_since', 'last_visit', db_sqlize($hash)), "MEMBER", "user_id = {$user['user_id']}"));
				mail("{$user['nick']} <{$user['email']}>", "Nieuw wachtwoord voor mandragon.be", $message, "From: {$CONFIG['mail_from']} <{$CONFIG['admin_email']}>");
				endpage("OK, je wachtwoord is opgestuurd naar {$user['email']}");
			}

		}

		$page->content = $CONTENT;
	}

	/**
	 * dress up page content using skin stuff
	 */
	function page_inc_dress($page) {
		if ($page->content['body'])
			print_body($page);
		if ($page->content['form'])
			print_form($page, $page->content['form']);
	}
}

?>